package com.insight.modules.system.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.insight.modules.system.entity.SysDataLog;
import com.insight.modules.system.mapper.SysDataLogMapper;
import com.insight.modules.system.service.ISysDataLogService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class SysDataLogServiceImpl extends ServiceImpl<SysDataLogMapper, SysDataLog> implements ISysDataLogService {

	@Autowired
	private SysDataLogMapper logMapper;

	/**
	 * 添加数据日志，自动维护版本号递增
	 * @param tableName   表名
	 * @param dataId      数据主键ID
	 * @param dataContent 变更后的数据内容（一般为JSON字符串）
	 */
	@Override
	public void addDataLog(String tableName, String dataId, String dataContent) {
		// 查询该数据当前最大版本号
		String dataVersion = logMapper.queryMaxDataVer(tableName, dataId);
		String versionNumber = "0";
		if (dataVersion != null) {
			// 最大版本号基础上 +1
			versionNumber = String.valueOf(Integer.parseInt(dataVersion) + 1);
		}

		// 构建数据日志对象
		SysDataLog log = new SysDataLog();
		log.setDataTable(tableName);
		log.setDataId(dataId);
		log.setDataContent(dataContent);
		log.setDataVersion(versionNumber);

		// 保存数据日志记录
		this.save(log);
	}
}

